home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 January - Disc 2 / Macworld (1999-01) (Disk 2).dmg / Serious Demos / Symbolic Composer 4.2 / Environment / System / CADAR / Symbols / Random / random-invert < prev    next >
Lisp/Scheme  |  1998-10-22  |  1KB  |  38 lines

  1. random-invert lst no-fx-lst fx-lst
  2. &key (type 'rnd) (func 'rnd)
  3. legal calls:
  4. type 'rnd 'norm
  5. func 'rnd 'inv 'ret 'ret-inv
  6.  
  7. takes list of symbols and applies retrograde,
  8. inversion or retrograde-inversion either
  9. one function at the time or selects randomly
  10. among functions.
  11. no-fx-lst is a list of integers not to apply any
  12. function and fx-lst applies function.
  13. with type 'norm follows fx-lists exactly
  14. with type 'rnd randomly varies fx-list with maximum
  15. fx-list and minimum 1.
  16.  
  17. (setq melo '(a b c d e f g h i j k l m))
  18.  
  19. so here it dont applies any function for the two first
  20. symbols the applies function on next four symbols
  21. then again no function for the next three symbols and
  22. function on next one symbol which will repeat if symbol-list
  23. is longer. 
  24.  
  25. (random-invert melo '(2 3) '(4 1) :type 'rnd :func 'rnd)
  26. -->(A -D -C -B E F G -H I J -K -L -M)
  27. -->(A B -F -E -D -C G H I J K M L) . . .
  28.  
  29. (random-invert melo '(2 3) '(4 1) :type 'norm :func 'ret)
  30. -->(A B F E D C G H I J K L M)
  31.  
  32. (random-invert melo '(2 3) '(4 1) :type 'norm :func 'inv)
  33. -->(A B -C -D -E -F G H I -J K L -M)
  34.  
  35. (random-invert melo '(2 3) '(4 1) :type 'norm :func 'ret-inv)
  36. -->(A B -F -E -D -C G H I -J K L -M)
  37.  
  38.